<?php
//自动根据表单中，含有ai_的name，判断数据库是否存在该项目。
//存在则生成sql语句，用于更新数据。不存在则提醒错误并指出.

//$table目标表格名称
//$ai_date,获取过来的数据
//$target 用来做唯一辨析项的项目。例如nid。
//$target_value 用来做唯一辨析项的项目的值。例如nid=134中的134。

function update_date($table,$ai_date,$target,$target_value)
{
//获取数据库目标表格存入数组
$items = mysql_query("SHOW COLUMNS FROM ".$table."") ;

while($row = mysql_fetch_array($items))
{
    $table_item_list[]=$row['Field'];

}

//echo "表格列表";
//print_r2($table_item_list);
//echo "表格列表";

//获取ai_date的所有键值
$ai_key_list=array_keys($ai_date);
//去除所有不含ai_头的键,组成新的数组。

    for($i=0;$i<count($ai_key_list);$i++)
    {
        if(substr($ai_key_list[$i],0,3)=="ai_")
        {
            $checked_ai_key_list[]=$ai_key_list[$i];

        }

    }


//    echo "传递的数值的name";
//    print_r2($ai_key_list);
//    echo "传递的数值的name";
//
//    echo "传递的数值的name,含有ai_";
//    print_r2($checked_ai_key_list);
//    echo "传递的数值的name,含有ai_";


    //转换含有ai_的项，去掉ai，和项目做比较。
    for($i=0;$i<count($checked_ai_key_list);$i++)
    {

            $trans_checked_ai_key_list[$i]=substr($checked_ai_key_list[$i],3);


    }


//echo "转换后的项目";
//print_r2($trans_checked_ai_key_list);
//echo "转换后的项目";


$diff_array=array_diff($trans_checked_ai_key_list,$table_item_list);

//    echo "传递的数值的name,含有ai_的项，去掉ai_，和表格做对比的结果";
//    print_r2($diff_array);
//    echo "传递的数值的name,含有ai_的项，去掉ai_，和表格做对比的结果";
//

//对比$ai_key_list数组是否全存在$table_item_list。如果存在差异，输出差异数组键值名称。

if($diff_array)
{
    return $result="目标表单中不存在以下项，请检查 : ".implode(",",$diff_array);
}

//不存在差异，则检查数据，并且把数组打散成字符串。
else
{
    //echo "不存在差异,生成插入语句";


    $sql_middle="";


    $sql_prefix = "update ".$table." SET ";

    for($i=0;$i<count($checked_ai_key_list);$i++)
    {
        if( is_array($ai_date[$checked_ai_key_list[$i]]))
        {
            $sql_values[]=implode(",",$ai_date[$checked_ai_key_list[$i]]);
        }
        else
        {
            $sql_values[]=$ai_date[$checked_ai_key_list[$i]];
        }


        $sql_middle=$sql_middle.substr($checked_ai_key_list[$i],3)." = '".$sql_values[$i]."' ,";

    }

    $sql_middle=rtrim($sql_middle,",");

    $sql_suffix=" where ".$target."  = '".$target_value."'";




    return $sqlstr=$sql_prefix.$sql_middle.$sql_suffix;


}












//函数结束
}